<html>
<head><meta charset="utf-8"><title>Globally Consistent Error Reporting · project-error-handling · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/index.html">project-error-handling</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html">Globally Consistent Error Reporting</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="214620128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620128">(Oct 26 2020 at 19:13)</a>:</h4>
<p>Okay so here's the issue where I've written up a bit of a summary</p>



<a name="214620131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620131">(Oct 26 2020 at 19:13)</a>:</h4>
<p><a href="https://github.com/rust-lang/project-error-handling/issues/10">https://github.com/rust-lang/project-error-handling/issues/10</a></p>



<a name="214620290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620290">(Oct 26 2020 at 19:14)</a>:</h4>
<p>the problem is that we'd like to be able to have more consistent error reporting</p>



<a name="214620301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620301">(Oct 26 2020 at 19:14)</a>:</h4>
<p>(kinda redundant)</p>



<a name="214620321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620321">(Oct 26 2020 at 19:14)</a>:</h4>
<p>an example being</p>



<a name="214620354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620354">(Oct 26 2020 at 19:15)</a>:</h4>
<p>if someone has an <code>.unwrap()</code> on a result with a type that impls <code>Debug</code> and <code>Error</code></p>



<a name="214620360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620360">(Oct 26 2020 at 19:15)</a>:</h4>
<p>right now it will print the debug format</p>



<a name="214620384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620384">(Oct 26 2020 at 19:15)</a>:</h4>
<p>if that type happens to be something like <code>anyhow::Error</code> or <code>eyre::Report</code> its kinda okay, you at least print all the sources</p>



<a name="214620401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620401">(Oct 26 2020 at 19:15)</a>:</h4>
<p>but then you end up printing two backtraces</p>



<a name="214620415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620415">(Oct 26 2020 at 19:15)</a>:</h4>
<p>the one captured in the error reprter</p>



<a name="214620422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620422">(Oct 26 2020 at 19:15)</a>:</h4>
<p>and the one captured by the panic reporter</p>



<a name="214620465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620465">(Oct 26 2020 at 19:16)</a>:</h4>
<p>panic hook</p>



<a name="214620472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620472">(Oct 26 2020 at 19:16)</a>:</h4>
<p>w/e you wanna call it</p>



<a name="214620485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620485">(Oct 26 2020 at 19:16)</a>:</h4>
<p>if you unwrap something that merely impls Error</p>



<a name="214620500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620500">(Oct 26 2020 at 19:16)</a>:</h4>
<p>its debug format is usually a derive format</p>



<a name="214620506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620506">(Oct 26 2020 at 19:16)</a>:</h4>
<p>and very verbose</p>



<a name="214620525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620525">(Oct 26 2020 at 19:16)</a>:</h4>
<p>and may not include its source error messages at all</p>



<a name="214620612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620612">(Oct 26 2020 at 19:17)</a>:</h4>
<p>Ideally I'd like panics to be able to be more information about the types they're reporting on</p>



<a name="214620648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620648">(Oct 26 2020 at 19:18)</a>:</h4>
<p>but I think we're pretty limited on how much we can do that</p>



<a name="214620734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620734">(Oct 26 2020 at 19:18)</a>:</h4>
<p>so one suggestion in the past from dtolnay was to add a <code>is_termination()</code> flag to <code>Debug</code></p>



<a name="214620750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620750">(Oct 26 2020 at 19:18)</a>:</h4>
<p>that indicates that the debug fmt is being used for an error report before exiting the application</p>



<a name="214620762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620762">(Oct 26 2020 at 19:19)</a>:</h4>
<p>this also helps resolve some issues with having to use the <code>Debug</code> format in <code>eyre</code>/<code>anyhow</code></p>



<a name="214620932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620932">(Oct 26 2020 at 19:20)</a>:</h4>
<p>It would be nice if the Debug fmt for Errors could see that this flag is set, and that it impls Error (somehow) and use a more consistent format</p>



<a name="214620941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620941">(Oct 26 2020 at 19:20)</a>:</h4>
<p>I don't thikn this really solves the problems though</p>



<a name="214620955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620955">(Oct 26 2020 at 19:20)</a>:</h4>
<p>first of all, I don't even think we could implement that</p>



<a name="214620963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620963">(Oct 26 2020 at 19:20)</a>:</h4>
<p>since derives dont have access to type information</p>



<a name="214620968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620968">(Oct 26 2020 at 19:20)</a>:</h4>
<p>second, that wouldn't be universally consistent</p>



<a name="214620976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214620976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214620976">(Oct 26 2020 at 19:20)</a>:</h4>
<p>each error would be defining its own error format</p>



<a name="214621002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621002">(Oct 26 2020 at 19:21)</a>:</h4>
<p>I have two ideas atm that I think could work</p>



<a name="214621016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621016">(Oct 26 2020 at 19:21)</a>:</h4>
<p>once is concrete but doesn't cover every edge case</p>



<a name="214621027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621027">(Oct 26 2020 at 19:21)</a>:</h4>
<p>the other is extremely vague and half baked</p>



<a name="214621052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621052">(Oct 26 2020 at 19:21)</a>:</h4>
<p>for the first plan: based somewhat on <span class="user-mention" data-user-id="310399">@Mara</span> 's panic plan RFC</p>



<a name="214621122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621122">(Oct 26 2020 at 19:22)</a>:</h4>
<p>we could add a <code>panic_error</code> helper, for creating panics for error types</p>



<a name="214621137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621137">(Oct 26 2020 at 19:22)</a>:</h4>
<p>then</p>



<a name="214621171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621171">(Oct 26 2020 at 19:22)</a>:</h4>
<p>if we could somehow specialize the <code>unwrap</code>/<code>expect</code> functions on Result / Option (how???)</p>



<a name="214621182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621182">(Oct 26 2020 at 19:22)</a>:</h4>
<p>we could have <code>unwrap()</code> where E: Debug</p>



<a name="214621183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621183">(Oct 26 2020 at 19:22)</a>:</h4>
<p>and unwrap where E: Debug + Any,</p>



<a name="214621194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621194">(Oct 26 2020 at 19:23)</a>:</h4>
<p>and unwrap where E: Debug + Any + Error,</p>



<a name="214621205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621205">(Oct 26 2020 at 19:23)</a>:</h4>
<p>we might not want to bother with the any bound though</p>



<a name="214621218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621218">(Oct 26 2020 at 19:23)</a>:</h4>
<p>since that restricts non static errors</p>



<a name="214621337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621337">(Oct 26 2020 at 19:24)</a>:</h4>
<p>this would at least catch the main panic locations</p>



<a name="214621361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621361">(Oct 26 2020 at 19:24)</a>:</h4>
<p>and presumably the same specialization could easily be applied to the <code>Termination</code> impl on <code>Result</code></p>



<a name="214621399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621399">(Oct 26 2020 at 19:25)</a>:</h4>
<p>then panic handlers could be written to handle <code>dyn Error</code> types</p>



<a name="214621408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621408">(Oct 26 2020 at 19:25)</a>:</h4>
<p>this doesn't help with <code>eyre</code> and <code>anyhow</code></p>



<a name="214621448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621448">(Oct 26 2020 at 19:25)</a>:</h4>
<p>also i dont think you can box a <code>Debug + Any</code></p>



<a name="214621454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621454">(Oct 26 2020 at 19:25)</a>:</h4>
<p>since thats a compound trait object</p>



<a name="214621465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621465">(Oct 26 2020 at 19:25)</a>:</h4>
<p>so i feel like theres many reasons this plan isn't possible...</p>



<a name="214621473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621473">(Oct 26 2020 at 19:25)</a>:</h4>
<p>The even more half baked plans</p>



<a name="214621532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621532">(Oct 26 2020 at 19:26)</a>:</h4>
<p>if we added a new <code>Report</code> trait</p>



<a name="214621537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621537">(Oct 26 2020 at 19:26)</a>:</h4>
<p><code>std::fmt::Report</code></p>



<a name="214621539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621539">(Oct 26 2020 at 19:26)</a>:</h4>
<p>which is a specialized version of <code>Debug</code></p>



<a name="214621557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621557">(Oct 26 2020 at 19:26)</a>:</h4>
<p>so all <code>Debug</code> types impl <code>Report</code> by default with their debug impl</p>



<a name="214621572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621572">(Oct 26 2020 at 19:26)</a>:</h4>
<p>then you can override that</p>



<a name="214621593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621593">(Oct 26 2020 at 19:27)</a>:</h4>
<p>and this Report format had some sort of inverse formatting relationship</p>



<a name="214621627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621627">(Oct 26 2020 at 19:27)</a>:</h4>
<p>there's some global Error Reporting Object</p>



<a name="214621636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621636">(Oct 26 2020 at 19:27)</a>:</h4>
<p>that is somehow accessible via the <code>Report</code> api</p>



<a name="214621639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621639">(Oct 26 2020 at 19:27)</a>:</h4>
<p>through its formatter or something</p>



<a name="214621650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621650">(Oct 26 2020 at 19:27)</a>:</h4>
<p>and you could do something like</p>



<a name="214621701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621701">(Oct 26 2020 at 19:28)</a>:</h4>
<p><code>fmter.reporter.fmt_error(&amp;self)</code></p>



<a name="214621726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621726">(Oct 26 2020 at 19:28)</a>:</h4>
<p>so you pass yourself as an error trait object to the global reporter</p>



<a name="214621764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621764">(Oct 26 2020 at 19:28)</a>:</h4>
<p>and then there could maybe be default specialized impls for <code>Error</code> types</p>



<a name="214621805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621805">(Oct 26 2020 at 19:29)</a>:</h4>
<p>so if you implement Debug and Error, then instead of forwarding to the <code>Debug</code> impl, it uses the blanket provided impl from <code>std</code></p>



<a name="214621809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621809">(Oct 26 2020 at 19:29)</a>:</h4>
<p>which just calls <code>fmt_error</code> via the global formatter</p>



<a name="214621842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621842">(Oct 26 2020 at 19:29)</a>:</h4>
<p>then we switch <code>unwrap</code> and <code>expect</code> and all those panicing functions to use <code>Report</code> instead of <code>Debug</code></p>



<a name="214621856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621856">(Oct 26 2020 at 19:29)</a>:</h4>
<p>the more I think about it the less half baked this seems</p>



<a name="214621913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214621913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214621913">(Oct 26 2020 at 19:30)</a>:</h4>
<p>and it seems to have less technical hurdles than the alternative solution</p>



<a name="214622006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622006">(Oct 26 2020 at 19:31)</a>:</h4>
<p>the formatter might not even need to be global</p>



<a name="214622021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622021">(Oct 26 2020 at 19:31)</a>:</h4>
<p>it might be able to go back up to the type handling the formatting itself</p>



<a name="214622028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622028">(Oct 26 2020 at 19:31)</a>:</h4>
<p>which could just be your panic hook</p>



<a name="214622065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622065">(Oct 26 2020 at 19:31)</a>:</h4>
<p>_now I want to try to proof of concept this_</p>



<a name="214622143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622143">(Oct 26 2020 at 19:32)</a>:</h4>
<p>This feels pretty similar to structured logging actually</p>



<a name="214622146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214622146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214622146">(Oct 26 2020 at 19:32)</a>:</h4>
<p>and <code>tracing::Value</code></p>



<a name="214649216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214649216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremiah Senkpiel <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214649216">(Oct 27 2020 at 00:26)</a>:</h4>
<p>oof this is pretty long, will try to get to reading it tomorrow(?), got dragged into other things today</p>



<a name="214650105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650105">(Oct 27 2020 at 00:42)</a>:</h4>
<p><del>thought this was a poem</del></p>



<a name="214650158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650158">(Oct 27 2020 at 00:42)</a>:</h4>
<p>sorry about this</p>



<a name="214650161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650161">(Oct 27 2020 at 00:42)</a>:</h4>
<p>no worries</p>



<a name="214650166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650166">(Oct 27 2020 at 00:42)</a>:</h4>
<p><span class="user-mention" data-user-id="319552">@Jeremiah Senkpiel</span> if you prefer I can boil this down into a comment in the original github issue</p>



<a name="214650169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650169">(Oct 27 2020 at 00:42)</a>:</h4>
<p>a lot of the information in this thread is redundant</p>



<a name="214650172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214650172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214650172">(Oct 27 2020 at 00:42)</a>:</h4>
<p>stuff I was thinking about but then thought better of later</p>



<a name="214653080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremiah Senkpiel <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653080">(Oct 27 2020 at 01:37)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span>  I think it would probably be helpful if you were able to condense it into a comment. <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="214653434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653434">(Oct 27 2020 at 01:44)</a>:</h4>
<p>will do</p>



<a name="214653620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Ellis O&#x27;Riley Jr. <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653620">(Oct 27 2020 at 01:49)</a>:</h4>
<p>Jane, Replied to your email.</p>



<a name="214653633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653633">(Oct 27 2020 at 01:49)</a>:</h4>
<p>yea, I saw. don't worry about the minutes, I'll grab them from <span class="user-mention" data-user-id="204346">@Ashley Mannix</span> 's comment on the ehpg issue</p>



<a name="214653729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Ellis O&#x27;Riley Jr. <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653729">(Oct 27 2020 at 01:51)</a>:</h4>
<p>For my info, was there more I needed to add?  I thought I summed everything</p>



<a name="214653732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653732">(Oct 27 2020 at 01:51)</a>:</h4>
<p>I think i might be confused</p>



<a name="214653739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653739">(Oct 27 2020 at 01:51)</a>:</h4>
<p>it looked like from your reply you took the minutes from a previous meeting and just changed the date and put in the correct participants</p>



<a name="214653827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Ellis O&#x27;Riley Jr. <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653827">(Oct 27 2020 at 01:53)</a>:</h4>
<p><span aria-label="innocent" class="emoji emoji-1f607" role="img" title="innocent">:innocent:</span>   True plus the link to the minutes.  Wasn't sure if I needed to add more to the md.</p>



<a name="214653991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653991">(Oct 27 2020 at 01:57)</a>:</h4>
<p>yea, the minutes need to be of the meeting we had</p>



<a name="214653992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653992">(Oct 27 2020 at 01:57)</a>:</h4>
<p>not a previous meeting</p>



<a name="214653999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214653999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214653999">(Oct 27 2020 at 01:57)</a>:</h4>
<p>but <span class="user-mention" data-user-id="204346">@Ashley Mannix</span> already created minutes for the meeting</p>



<a name="214654002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214654002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214654002">(Oct 27 2020 at 01:57)</a>:</h4>
<p>so you don't need to add anything</p>



<a name="214654005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214654005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214654005">(Oct 27 2020 at 01:57)</a>:</h4>
<p>I'll swap out the old minutes for the ones from this meeting</p>



<a name="214654072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214654072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Ellis O&#x27;Riley Jr. <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214654072">(Oct 27 2020 at 01:59)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> thanks</p>



<a name="214668003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/214668003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#214668003">(Oct 27 2020 at 07:36)</a>:</h4>
<p>I will also look into it today :)</p>



<a name="215360055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215360055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215360055">(Nov 02 2020 at 18:39)</a>:</h4>
<p>sorry it took so long</p>



<a name="215360060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215360060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215360060">(Nov 02 2020 at 18:39)</a>:</h4>
<p><a href="https://github.com/rust-lang/project-error-handling/issues/10#issuecomment-720652610">https://github.com/rust-lang/project-error-handling/issues/10#issuecomment-720652610</a></p>



<a name="215360063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215360063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215360063">(Nov 02 2020 at 18:39)</a>:</h4>
<p>but here we go</p>



<a name="215360070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215360070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215360070">(Nov 02 2020 at 18:39)</a>:</h4>
<p>I wrote up a shorter explanation of my idea</p>



<a name="215364345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215364345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215364345">(Nov 02 2020 at 19:13)</a>:</h4>
<p>this looks great!</p>



<a name="215373465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215373465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215373465">(Nov 02 2020 at 20:25)</a>:</h4>
<p>oh, thanks! Got bogged down in day-to-day work so did not add any sensible input to the discussion yet :)</p>



<a name="215468268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468268">(Nov 03 2020 at 15:29)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> Having two arguments to the Report trait's method feels like a workaround for existing behavior, but the kind that we have to live with for all time.</p>



<a name="215468393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468393">(Nov 03 2020 at 15:30)</a>:</h4>
<p>(Or a workaround for specialization not being stable yet.)</p>



<a name="215468422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468422">(Nov 03 2020 at 15:30)</a>:</h4>
<p>Either way, it feels like there <em>ought</em> to be some other way...</p>



<a name="215468483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468483">(Nov 03 2020 at 15:31)</a>:</h4>
<p>The idea of the Report trait does seem like the right answer, to specifically handle error reporting.</p>



<a name="215468744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468744">(Nov 03 2020 at 15:32)</a>:</h4>
<p>It seems like it wouldn't be unreasonable to require people to wrap a type in a new type and add their own Report impl, to change reporting, rather than dealing with Reporter. Unless I'm misunderstanding the rationale for the Reporter trait.</p>



<a name="215468872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215468872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215468872">(Nov 03 2020 at 15:33)</a>:</h4>
<p>And then, if you don't need Reporter because of newtypes, you don't need to pass it to Report.</p>



<a name="215469996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215469996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215469996">(Nov 03 2020 at 15:41)</a>:</h4>
<p>the reporter like eyre::Report would essentially be one of those new types that specializes in carrying extra context like backtraces, is optimized to be one frame on the stack, has helper fns for adding new errors to the chain, etc</p>



<a name="215470155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215470155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215470155">(Nov 03 2020 at 15:42)</a>:</h4>
<p>so I think you'd still want reporters, but yea I think you've got the gist of it</p>



<a name="215966090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966090">(Nov 07 2020 at 17:57)</a>:</h4>
<p>I dug a little bit into the issue and related topics. The generic access API sounds exciting and (though not the simplest) will probably solve some crucial problems right now.</p>



<a name="215966198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966198">(Nov 07 2020 at 18:00)</a>:</h4>
<p>so, maybe rephrasing what Josh already said. <code>Report</code> will be a drop-in replacement for Debug (by default  - with the global, predefined reporter)? and <code>Reporter</code> will give the specialization point for this reporting mechanism, right?</p>



<a name="215966240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966240">(Nov 07 2020 at 18:02)</a>:</h4>
<p>reporter isn't the specialization point, assuming I'm not mixing up the terms</p>



<a name="215966285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966285">(Nov 07 2020 at 18:02)</a>:</h4>
<p>reporter is the hook into the Formatter for general class errrors or panics</p>



<a name="215966293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966293">(Nov 07 2020 at 18:02)</a>:</h4>
<p>so its how you say "format me using your rules, here's all my data"</p>



<a name="215966302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966302">(Nov 07 2020 at 18:03)</a>:</h4>
<p>Report is the trait that either prints it using your own rules or asks the Reporter to print it for you</p>



<a name="215966315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966315">(Nov 07 2020 at 18:03)</a>:</h4>
<p>I probably miss a lot of details still, but I see it as adding a neat layer of indirection we can fill in quite easily (with our  own formatting etc)</p>



<a name="215966322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966322">(Nov 07 2020 at 18:03)</a>:</h4>
<p>yea</p>



<a name="215966336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966336">(Nov 07 2020 at 18:03)</a>:</h4>
<p>I probably misused the 'specialization point' nomenclature</p>



<a name="215966340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966340">(Nov 07 2020 at 18:03)</a>:</h4>
<p>the thing im trying to figure out is how to manage access to the Reporter</p>



<a name="215966343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966343">(Nov 07 2020 at 18:04)</a>:</h4>
<p>should it be global?</p>



<a name="215966382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966382">(Nov 07 2020 at 18:04)</a>:</h4>
<p>right now eyre has the same thing in it</p>



<a name="215966385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966385">(Nov 07 2020 at 18:04)</a>:</h4>
<p>theres a global hook for constructing them</p>



<a name="215966393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966393">(Nov 07 2020 at 18:04)</a>:</h4>
<p>but then the errors carry around the reporter with them</p>



<a name="215966398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966398">(Nov 07 2020 at 18:04)</a>:</h4>
<p>and use that to implement the Debug impl</p>



<a name="215966401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966401">(Nov 07 2020 at 18:05)</a>:</h4>
<p>what is the alternative?</p>



<a name="215966412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966412">(Nov 07 2020 at 18:05)</a>:</h4>
<p>not sure</p>



<a name="215966424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966424">(Nov 07 2020 at 18:05)</a>:</h4>
<p>but I see the current system as limiting</p>



<a name="215966434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966434">(Nov 07 2020 at 18:05)</a>:</h4>
<p>adam recently brought up that Diagnostic in rustc is somewhat similar to this split plus the generic member access rfc</p>



<a name="215966478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966478">(Nov 07 2020 at 18:06)</a>:</h4>
<p>and now I think we should aim to have any universal reporting mechanism be sufficient for rustc's needs</p>



<a name="215966485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966485">(Nov 07 2020 at 18:06)</a>:</h4>
<p>but if we could get rustc using the Error trait and still getting high quality errors</p>



<a name="215966494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966494">(Nov 07 2020 at 18:06)</a>:</h4>
<p>while having simple apps be able to just use something like eyre and not worry about it</p>



<a name="215966496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966496">(Nov 07 2020 at 18:06)</a>:</h4>
<p>then I think we can be confident that it's the right approach</p>



<a name="215966504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966504">(Nov 07 2020 at 18:07)</a>:</h4>
<p>the things I mostly worry about is accessing context with lifetimes</p>



<a name="215966505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966505">(Nov 07 2020 at 18:07)</a>:</h4>
<p>like source maps</p>



<a name="215966508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966508">(Nov 07 2020 at 18:07)</a>:</h4>
<p>in the reporter</p>



<a name="215966512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966512">(Nov 07 2020 at 18:07)</a>:</h4>
<p>if it's global it has to be static</p>



<a name="215966519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966519">(Nov 07 2020 at 18:07)</a>:</h4>
<p>which severely limits data we can access</p>



<a name="215966520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966520">(Nov 07 2020 at 18:07)</a>:</h4>
<p>so part of me wants it to be a parameter passes in, but from where?</p>



<a name="215966880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966880">(Nov 07 2020 at 18:16)</a>:</h4>
<p>Registering reporters at the call site is probably not the best idea</p>



<a name="215966901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215966901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215966901">(Nov 07 2020 at 18:17)</a>:</h4>
<p>How limiting is having a global reporter? Is it much of a hassle in eyre?</p>



<a name="215967253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215967253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215967253">(Nov 07 2020 at 18:27)</a>:</h4>
<p>I haven't seen any concrete cases where it's insufficient</p>



<a name="215967263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215967263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215967263">(Nov 07 2020 at 18:27)</a>:</h4>
<p>tho in libraries that wish to interact with it there's some breakdown</p>



<a name="215967309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/215967309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#215967309">(Nov 07 2020 at 18:28)</a>:</h4>
<p>but part of me thinks that's usually because libraries should stick to their own Error types rather than interacting with a reporter, but I know of good arguments in favor of them as well</p>



<a name="216015292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015292">(Nov 08 2020 at 17:03)</a>:</h4>
<p>and is having libs maintain owned Error types the general outline we are<br>
referring to when thinking about a universal reporting mechanism?</p>



<a name="216015341"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015341" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015341">(Nov 08 2020 at 17:04)</a>:</h4>
<p>or is 'any' meant to be significantly different than that?</p>



<a name="216015383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015383">(Nov 08 2020 at 17:05)</a>:</h4>
<p>not necessarily</p>



<a name="216015424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015424">(Nov 08 2020 at 17:06)</a>:</h4>
<p>I think we can make those two goals independent</p>



<a name="216015437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015437">(Nov 08 2020 at 17:06)</a>:</h4>
<p>tho we don't have 'universal reporting mechanism' defined</p>



<a name="216015439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015439">(Nov 08 2020 at 17:06)</a>:</h4>
<p>but I think reporting and dyn errors like anyhow should be designed with eachother in mind</p>



<a name="216015440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015440">(Nov 08 2020 at 17:06)</a>:</h4>
<p>yet</p>



<a name="216015442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015442">(Nov 08 2020 at 17:06)</a>:</h4>
<p>yea</p>



<a name="216015631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015631">(Nov 08 2020 at 17:11)</a>:</h4>
<p>so we are going to ask users to wrap their own reporters but haven't thought<br>
through exactly what's included in that and how the lifetimes work when crossing<br>
contexts</p>



<a name="216015640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216015640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216015640">(Nov 08 2020 at 17:11)</a>:</h4>
<p>or whatever 'accessing context' means in that respect</p>



<a name="216016175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216016175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216016175">(Nov 08 2020 at 17:23)</a>:</h4>
<p>I think we're still pretty far from users having to worry about stuff</p>



<a name="216016234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216016234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216016234">(Nov 08 2020 at 17:24)</a>:</h4>
<p>but ideally most ppl shouldn't have to interact with these features at all</p>



<a name="216016541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216016541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216016541">(Nov 08 2020 at 17:30)</a>:</h4>
<p>what is our definition of 'accessing context' then?</p>



<a name="216016985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216016985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216016985">(Nov 08 2020 at 17:40)</a>:</h4>
<p>I'm still confused about reporting types v. error kind patterns</p>



<a name="216017282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017282">(Nov 08 2020 at 17:47)</a>:</h4>
<p>my definition for context is information about an error or the system it comes from that isn't itself an error message</p>



<a name="216017290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017290">(Nov 08 2020 at 17:47)</a>:</h4>
<p>so if you're writing a parser, the error might describe how syntax was violated, and the actual code snippet the error comes from would be context</p>



<a name="216017342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017342">(Nov 08 2020 at 17:48)</a>:</h4>
<p>and the problem is accessing the source map (context) from an error reporter</p>



<a name="216017366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017366">(Nov 08 2020 at 17:49)</a>:</h4>
<p>the universal reporting proposal might blur the line a bit between reporting types and errors</p>



<a name="216017371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017371">(Nov 08 2020 at 17:49)</a>:</h4>
<p>or maybe more cleanly separate them</p>



<a name="216017378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017378">(Nov 08 2020 at 17:49)</a>:</h4>
<p>(still organizing ideas in my head)</p>



<a name="216017428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216017428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216017428">(Nov 08 2020 at 17:50)</a>:</h4>
<p>me too <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="216022855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216022855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216022855">(Nov 08 2020 at 20:04)</a>:</h4>
<p>What about having a global <code>'static</code> <code>Reporter</code> as well as allowing scoped thread-local overrides, something like:</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">set_global_reporter</span><span class="p">(</span><span class="n">v</span>: <span class="nb">Box</span><span class="o">&lt;</span><span class="k">dyn</span><span class="w"> </span><span class="n">Reporter</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">Sync</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="o">'</span><span class="nb">static</span><span class="o">&gt;</span><span class="p">);</span><span class="w"> </span><span class="c1">// panics if old reporter currently borrowed, or we could use Arc</span>
<span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">borrow_reporter</span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span><span class="p">(</span><span class="n">f</span>: <span class="nc">impl</span><span class="w"> </span><span class="nb">FnOnce</span><span class="p">(</span><span class="o">&amp;</span><span class="k">dyn</span><span class="w"> </span><span class="n">Reporter</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="o">'</span><span class="nb">_</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="p">;</span><span class="w"></span>
<span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">with_scoped_reporter</span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span><span class="p">(</span><span class="n">reporter</span>: <span class="kp">&amp;</span><span class="nc">dyn</span><span class="w"> </span><span class="n">Reporter</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="o">'</span><span class="nb">_</span><span class="p">,</span><span class="w"> </span><span class="n">f</span>: <span class="nc">impl</span><span class="w"> </span><span class="nb">FnOnce</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="p">;</span><span class="w"></span>
</code></pre></div>



<a name="216030006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216030006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216030006">(Nov 08 2020 at 23:02)</a>:</h4>
<p>does that allow for concurrent reporters?</p>



<a name="216053553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216053553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216053553">(Nov 09 2020 at 08:20)</a>:</h4>
<p>do you think scoped thread-local reporters would be useful? I can see some uses for it, but is that a good solution for current doubts?</p>



<a name="216089440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216089440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216089440">(Nov 09 2020 at 14:21)</a>:</h4>
<p>a couple things: I don't know if that's been discussed specifically so it's<br>
possible the point is out of scope tho we are meant to consider how<br>
representations inter-operate as well as how they're reached, hypothesizing about<br>
a concurrent state where some amount of context concerning the run-time is<br>
important isn't too doubtful, I was largely thinking about the idea of<br>
'accessing context' within the spirit of a 'universal reporting mechanism'<br>
which was just mentioned prior to, do you have any thoughts about that?</p>



<a name="216097006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216097006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216097006">(Nov 09 2020 at 15:12)</a>:</h4>
<p>Could you explain <code>inter-operate</code>?</p>



<a name="216097062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216097062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216097062">(Nov 09 2020 at 15:12)</a>:</h4>
<p>meaning that we have different representations of the error trace and they can collide?</p>



<a name="216097398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216097398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216097398">(Nov 09 2020 at 15:15)</a>:</h4>
<p>here: <a href="https://github.com/rust-lang/project-error-handling/issues/10">https://github.com/rust-lang/project-error-handling/issues/10</a></p>



<a name="216097737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216097737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216097737">(Nov 09 2020 at 15:17)</a>:</h4>
<p>I think conceptually collision could be an issue if errors were being generated<br>
in parallel though I'm lacking a concrete example of that</p>



<a name="216097999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216097999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216097999">(Nov 09 2020 at 15:19)</a>:</h4>
<p>the way it is being presented now is such that reporters won't be registered at<br>
the call site though I'm not clear if that encapsulates concurrency</p>



<a name="216101840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216101840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216101840">(Nov 09 2020 at 15:45)</a>:</h4>
<p>like I think with a parent reporter the program would have to halt when a error<br>
message is being generated from a sub-process</p>



<a name="216106977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216106977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216106977">(Nov 09 2020 at 16:16)</a>:</h4>
<p><span class="user-mention silent" data-user-id="281739">oliver</span> <a href="#narrow/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting/near/216030006">said</a>:</p>
<blockquote>
<p>does that allow for concurrent reporters?</p>
</blockquote>
<p>I think so, you can have a non-<code>'static</code> reporter be in scope on multiple threads at once if using something like rayon's scoped threads, all you need is to pass the same reporter to <code>with_scoped_reporter</code> on every thread. The reporter would need to use a <code>Mutex</code> (or other primitive) internally for any mutable state. Alternatively, the global reporter could be set for <code>'static</code> reporters and that would apply program-wide (except where locally overridden by <code>with_scoped_reporter</code>).</p>



<a name="216107210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216107210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216107210">(Nov 09 2020 at 16:18)</a>:</h4>
<p>rayon could probably be extended to automatically copy scoped reporters between threads if reporters are always <code>Send + Sync</code></p>



<a name="216109401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216109401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216109401">(Nov 09 2020 at 16:34)</a>:</h4>
<p>does that impact rayon in any way?</p>



<a name="216125929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216125929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jakub Duchniewicz <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216125929">(Nov 09 2020 at 18:36)</a>:</h4>
<p><span class="user-mention silent" data-user-id="281739">oliver</span> <a href="#narrow/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting/near/216101840">said</a>:</p>
<blockquote>
<p>like I think with a parent reporter the program would have to halt when a error<br>
message is being generated from a sub-process</p>
</blockquote>
<p>I get you now, this seems like a relevant issue with global things</p>



<a name="216126787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216126787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216126787">(Nov 09 2020 at 18:43)</a>:</h4>
<p>a bunch of spaghetti reporting info is rotten, so some of the work on pointer<br>
metadata may enable us to capture ordering relevant data or something in<br>
rayon perhaps</p>



<a name="216126981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216126981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216126981">(Nov 09 2020 at 18:45)</a>:</h4>
<p><span class="user-mention silent" data-user-id="229517">Jacob Lifshay</span> <a href="#narrow/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting/near/216106977">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="281739">oliver</span> <a href="#narrow/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting/near/216030006">said</a>:</p>
<blockquote>
<p>does that allow for concurrent reporters?</p>
</blockquote>
<p>I think so, you can have a non-<code>'static</code> reporter be in scope on multiple threads at once if using something like rayon's scoped threads, all you need is to pass the same reporter to <code>with_scoped_reporter</code> on every thread. The reporter would need to use a <code>Mutex</code> (or other primitive) internally for any mutable state. Alternatively, the global reporter could be set for <code>'static</code> reporters and that would apply program-wide (except where locally overridden by <code>with_scoped_reporter</code>).</p>
</blockquote>
<p>the biggest hole I see with this approach is the "you need to pass the reporter to every thread" bit. One of the goals here is to make it more or less impossible to mess up and lose information in your error messages</p>



<a name="216127011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216127011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216127011">(Nov 09 2020 at 18:45)</a>:</h4>
<p>the key thing being panicking on an <code>E: Error</code> type where it leaves out it's source errors</p>



<a name="216127030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216127030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216127030">(Nov 09 2020 at 18:45)</a>:</h4>
<p>so if we can forget to setup a reporter in a certain context and get error reports that look different that would be bad</p>



<a name="216127047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216127047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216127047">(Nov 09 2020 at 18:45)</a>:</h4>
<p>and violate the "universally consistent" goal</p>



<a name="216135791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216135791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216135791">(Nov 09 2020 at 19:57)</a>:</h4>
<p>Well, then just set the global error reporter using a <code>'static</code> reporter. That would automatically apply program-wide (except where overridden).</p>



<a name="216136380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Globally%20Consistent%20Error%20Reporting/near/216136380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Globally.20Consistent.20Error.20Reporting.html#216136380">(Nov 09 2020 at 20:02)</a>:</h4>
<p>supporting global reporters with shorter lifetimes is possible, but the semantics of what to do are quite messy when the reporter's lifetime expires and you need to replace the global reporter with the previous reporter.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>